import request from "../../utils/request";


/**
 * 文件树结构
 */
export async function fileTree() {
    return await request.get('/api/markdown/file-list');
}

/**
 * 在指定目录下新建文件
 */
export async function createFileApi(name: string, path: string | null) {
    return await request.post('/api/markdown/create-file', {
        params: {
            name: name,
            path: path
        }
    });
}

/**
 * 删除指定路径下的文件
 */
export async function deleteFileApi(path: string) {
    return await request.delete('/api/markdown/delete-file', {
        params: {
            path: path
        }
    });
}

/**
 * 导出文件夹压缩包
 *
 * @param name     文件夹名称
 * @param path     路径
 */
export async function exportFileZipApi(path: string | null, name: string | null) {
    return await request.get('/api/markdown/export', {
        params: {
            path: path,
            name: name
        },
        responseType: 'blob' // 设置响应类型为 blob，使得返回的数据是二进制文件
    });
}


/**
 * 调用导出文件夹压缩包---->下载文件压缩包
 */
export async function exportFileZip(path: string | null, name: string | null) {
    const zip = await exportFileZipApi(path, name);
    // 创建 Blob 对象
    const blob = new Blob([zip]);
    // 使用 URL.createObjectURL 创建下载链接
    const downloadUrl = URL.createObjectURL(blob);
    // 创建 <a> 标签并设置下载链接和文件名
    const link = document.createElement('a');
    link.href = downloadUrl;
    link.download = name ? `${name}.zip` : `markdown工作目录.zip`;  // 使用模板字符串连接字符串
    // 添加到 DOM 并触发下载行为
    document.body.appendChild(link);
    link.click();
}

